package com.zc.im.common.msg;

import com.zc.im.common.constant.enums.EquipmentTypeEnum;
import com.zc.im.common.constant.enums.MsgTypeEnum;
import com.zc.im.common.core.domain.BaseUserInfo;

/**
 * Project：im
 * Date：2022/4/21
 * Time：15:27
 * Description：基础消息
 *
 * @author Challen.Zhang
 * @version 1.0
 */
public interface Msg {

    /**
     * 获取消息类型
     *
     * @return 消息类型
     */
    MsgTypeEnum getType();

    /**
     * 获取userId
     *
     * @return userId
     */
    Long getUserId();

    /**
     * 获取设备类型
     *
     * @return 设备类型
     */
    EquipmentTypeEnum getEquipmentType();

    /**
     * 获取唯一标识
     * userId-设备类型
     *
     * @return 唯一标识
     */
    String getUniqueKey();

    /**
     * 获取用户基础信息
     *
     * @return 用户基础信息
     */
    BaseUserInfo getBaseUserInfo();
}
